package com.example.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * TODO
 *
 * @author ding
 * @since 2024/6/11
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("stage")
public class Stage {

    @TableId(type = IdType.AUTO)
    private Integer id;
    /** 阶段名称 */
    private String name;
    /** 阶段关联项目 */
    private Integer projectId;
    /** 阶段顺序 */
    private Integer sort;
    /** 项目完成日期 */
    private LocalDate complete;
    /** 阶段完成程度 */
    private Integer progress;

    /** 阶段完成个数*/
    private Integer number;

    /** 阶段开销 */
    private BigDecimal price;
    private Integer isDeleted;

    /** 阶段开始时间 */
    private LocalDate begin;
    /** 阶段结束时间 */
    private LocalDate end;
    /** 阶段逾期时间 */
    private LocalDate overdue;

    /** 阶段关联项目 */
    @TableField(exist = false)
    private String projectName;

    @TableField(exist = false)
    List<Stage> stages;

    /** 乐观锁版本号 */
    @ApiModelProperty("乐观锁版本号")
    @Version
    @TableField(value = "version", fill = FieldFill.INSERT)
    private Integer version;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

}
